# configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski.
#

AC_INIT(driver/subprocs.c)
AC_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST

AC_PROG_CC

if test -z "$GCC"; then
  AC_MSG_CHECKING(how to request ANSI compilation)
  case "$host" in
    *-hpux*)
      AC_MSG_RESULT(HPUX: adding -Ae)
      CC="$CC -Ae"
    ;;
    *-aix*)
      AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e)
      CC="$CC -qlanglvl=ansi -qhalt=e"
    ;;
    *)
      AC_MSG_RESULT(no idea)
    ;;
  esac
fi


AC_MSG_CHECKING([whether the compiler works on ANSI C])
AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
   AC_MSG_RESULT(yes),
   AC_MSG_RESULT(no)
   AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
   AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))

case "$host" in
  *-irix*)
  if test -n "$GCC"; then
    AC_MSG_RESULT(Turning on gcc compiler warnings.)
    CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
  else
    # not gcc
    AC_MSG_RESULT(Turning on SGI compiler warnings.)
    CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
  fi
  ;;
esac


AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_MAKE_SET

AC_C_CONST
AC_C_INLINE

AC_HEADER_STDC
AC_HEADER_TIME
AC_HEADER_SYS_WAIT
AC_HEADER_DIRENT

AC_TYPE_MODE_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL

AC_MSG_CHECKING(how to call gettimeofday)
AC_CACHE_VAL(ac_cv_gettimeofday_args,
 [AC_TRY_COMPILE([#include <stdlib.h>
		  #include <sys/time.h>],
		 [struct timeval tv; gettimeofday(&tv);],
		 [ac_gettimeofday_args=1],
		 [AC_TRY_COMPILE([#include <stdlib.h>
				  #include <sys/time.h>],
				 [struct timeval tv; struct timezone tzp;
				  gettimeofday(&tv, &tzp);],
				 [ac_gettimeofday_args=2],
				 [ac_gettimeofday_args=0])])
  ac_cv_gettimeofday_args=$ac_gettimeofday_args])
ac_gettimeofday_args=$ac_cv_gettimeofday_args
if test $ac_gettimeofday_args = 1 ; then
  AC_DEFINE(HAVE_GETTIMEOFDAY)
  AC_MSG_RESULT(one argument)
elif test $ac_gettimeofday_args = 2 ; then
  AC_DEFINE(HAVE_GETTIMEOFDAY)
  AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
  AC_MSG_RESULT(two arguments)
else
  AC_MSG_RESULT(unknown)
fi


AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
AC_CHECK_FUNCS(sigaction)

AC_CHECK_HEADERS(unistd.h)

dnl	/usr/local/src/ssh-1.2.17/putenv.c -- AC_REPLACE_FUNCS(putenv)


AC_ARG_ENABLE(subdir,[
Installation options:

  --enable-subdir=DIR     Put the demo programs in a subdirectory of \`bindir',
                          instead of putting them in bindir itself.  You can
                          specify the name of the subdirectory.  For example,
                          --exec-prefix=/usr/local/bin --enable-subdir=demos
                          would put xscreensaver in /usr/local/bin/, and would
                          put the demos in /usr/local/bin/demos/.  Note that if
                          you do this, you must make sure that the directory
                          is on your \$PATH before xscreensaver is started: the
                          directory name is not hardcoded into the program.
                          This merely sets the default installation location.

  --disable-subdir        Just put the demos in \`bindir' (this is the default.)
],
  [enable_subdir="$enableval"],[enable_subdir=no])
if test x"$enable_subdir" = xno; then
  HACKDIR='$(bindir)'
elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then
  echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir"
  exit 1
else
  HACKDIR='$(bindir)/'$enable_subdir
fi


AC_PATH_XTRA

# Try and find the app-defaults directory.
# It sucks that autoconf doesn't do this already...
#
AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,
  [
  rm -fr conftestdir
  if mkdir conftestdir; then
    cd conftestdir
    # Make sure to not put "make" in the Imakefile rules, since we grep it out.
    cat > Imakefile <<'EOF'
acfindx:
	@echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
EOF
    if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
      # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
      eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
    fi
    cd ..
    rm -fr conftestdir
  fi])

AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,
[  # Look for the directory under a standard set of common directories.
  # Check X11 before X11Rn because it's often a symlink to the current release.
  for ac_dir in					\
    /usr/X11/lib/app-defaults			\
    /usr/X11R6/lib/app-defaults			\
    /usr/X11R6/lib/X11/app-defaults		\
    /usr/X11R5/lib/app-defaults			\
    /usr/X11R5/lib/X11/app-defaults		\
    /usr/X11R4/lib/app-defaults			\
    /usr/X11R4/lib/X11/app-defaults		\
						\
    /usr/lib/X11/app-defaults			\
    /usr/lib/X11R6/app-defaults			\
    /usr/lib/X11R5/app-defaults			\
    /usr/lib/X11R4/app-defaults			\
						\
    /usr/local/X11/lib/app-defaults		\
    /usr/local/X11R6/lib/app-defaults		\
    /usr/local/X11R5/lib/app-defaults		\
    /usr/local/X11R4/lib/app-defaults		\
						\
    /usr/local/lib/X11/app-defaults		\
    /usr/local/lib/X11R6/app-defaults		\
    /usr/local/lib/X11R6/X11/app-defaults	\
    /usr/local/lib/X11R5/app-defaults		\
    /usr/local/lib/X11R5/X11/app-defaults	\
    /usr/local/lib/X11R4/app-defaults		\
    /usr/local/lib/X11R4/X11/app-defaults	\
						\
    /usr/X386/lib/X11/app-defaults		\
    /usr/x386/lib/X11/app-defaults		\
    /usr/XFree86/lib/X11/app-defaults		\
						\
    /usr/lib/X11/app-defaults			\
    /usr/local/lib/X11/app-defaults		\
    /usr/unsupported/lib/X11/app-defaults	\
    /usr/athena/lib/X11/app-defaults		\
    /usr/local/x11r5/lib/X11/app-defaults	\
    /usr/lpp/Xamples/lib/X11/app-defaults	\
    /lib/usr/lib/X11/app-defaults		\
						\
    /usr/openwin/lib/app-defaults		\
    /usr/openwin/lib/X11/app-defaults		\
    /usr/openwin/share/lib/app-defaults		\
    /usr/openwin/share/lib/X11/app-defaults	\
						\
    /X11R6/lib/app-defaults			\
    /X11R5/lib/app-defaults			\
    /X11R4/lib/app-defaults			\
    ; \
  do
    if test -d "$ac_dir"; then
      ac_x_app_defaults=$ac_dir
      break
    fi
  done
])


AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
  [AC_REQUIRE_CPP()
    AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
     [AC_PATH_X_APP_DEFAULTS_XMKMF
      AC_PATH_X_APP_DEFAULTS_DIRECT
      if test x"$ac_x_app_defaults" = x; then
        ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
      else
        # Record where we found app-defaults for the cache.
        ac_cv_x_app_defaults="$ac_x_app_defaults"
      fi])
    eval ac_x_app_defaults="$ac_cv_x_app_defaults"])

AC_PATH_X_APP_DEFAULTS

APPDEFAULTS=$ac_x_app_defaults


# Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
#
AC_DEFUN(AC_CHECK_X_HEADER, [
  ac_save_CPPFLAGS="$CPPFLAGS"
  if test \! -z "$includedir" ; then
    CPPFLAGS="$CPPFLAGS -I$includedir"
  fi
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
  AC_CHECK_HEADER([$1], [$2])
  CPPFLAGS="$ac_save_CPPFLAGS"])

# Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
#
AC_DEFUN(AC_EGREP_X_HEADER, [
  ac_save_CPPFLAGS="$CPPFLAGS"
  if test \! -z "$includedir" ; then
    CPPFLAGS="$CPPFLAGS -I$includedir"
  fi
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
  AC_EGREP_HEADER([$1], [$2], [$3], [$4])
  CPPFLAGS="$ac_save_CPPFLAGS"])

# Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
#
AC_DEFUN(AC_TRY_X_COMPILE, [
  ac_save_CPPFLAGS="$CPPFLAGS"
  if test \! -z "$includedir" ; then
    CPPFLAGS="$CPPFLAGS -I$includedir"
  fi
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
  AC_TRY_COMPILE([$1], [$2], [$3], [$4])
  CPPFLAGS="$ac_save_CPPFLAGS"])


# Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
# Use this sparingly; it probably doesn't work very well on X programs.
#
AC_DEFUN(AC_CHECK_X_LIB, [
  ac_save_CPPFLAGS="$CPPFLAGS"
  ac_save_LDFLAGS="$LDFLAGS"
  if test \! -z "$includedir" ; then
    CPPFLAGS="$CPPFLAGS -I$includedir"
  fi
  if test \! -z "$includedir" ; then
    CPPFLAGS="$CPPFLAGS -I$includedir"
  fi
  if test \! -z "$libdir" ; then
    LDFLAGS="$LDFLAGS -L$libdir"
  fi
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
  if test \! -z "$x_libraries" ; then
    LDFLAGS="$LDFLAGS -L$x_libraries"
  fi
  AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
  CPPFLAGS="$ac_save_CPPFLAGS"
  LDFLAGS="$ac_save_LDFLAGS"])

# Like AC_TRY_RUN, but it uses the already-computed -I directories.
# (But not the -L directories!)
#
AC_DEFUN(AC_TRY_X_RUN, [
  ac_save_CPPFLAGS="$CPPFLAGS"
  if test \! -z "$includedir" ; then
    CPPFLAGS="$CPPFLAGS -I$includedir"
  fi
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
  AC_TRY_RUN([$1], [$2], [$3], [$4])
  CPPFLAGS="$ac_save_CPPFLAGS"])





# check for the HP XHPDisableReset server extension headers.
#
AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
		  [AC_DEFINE(HAVE_XHPDISABLERESET)
		   SAVER_LIBS="-lXhp11 $SAVER_LIBS"])


# Check for the availability of the XPointer typedef, and define it otherwise.
#
AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
		[AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
				  [XPointer foo = (XPointer) 0;],
				  [ac_cv_xpointer=yes],
				  [ac_cv_xpointer=no])])
if test $ac_cv_xpointer != yes; then
  AC_DEFINE(XPointer,[char*])
fi


case "$host" in
  *-hpux*)
    # Thanks for not making xmkmf find this by default, you losers.
    if test -d /usr/lib/Motif1.2 ; then
      X_CFLAGS="-I/usr/include/Motif1.2 $X_CFLAGS"
      X_LIBS="-L/usr/lib/Motif1.2 $X_LIBS"
    elif test -d /usr/lib/Motif1.1 ; then
      X_CFLAGS="-I/usr/include/Motif1.1 $X_CFLAGS"
      X_LIBS="-L/usr/lib/Motif1.1 $X_LIBS"
    fi

    # This too.  You losers.
    if test -d /usr/contrib/X11R6/include ; then
      X_CFLAGS="-I/usr/contrib/X11R6/include $X_CFLAGS"
      X_LIBS="-L/usr/contrib/X11R6/lib $X_LIBS"
    elif test -d /usr/X11R6/include ; then
      X_CFLAGS="-I/usr/X11R6/include $X_CFLAGS"
      X_LIBS="-L/usr/X11R6/lib $X_LIBS"
    elif test -d /usr/contrib/X11R5/include ; then
      X_CFLAGS="-I/usr/contrib/X11R5/include $X_CFLAGS"
      X_LIBS="-L/usr/contrib/X11R5/lib $X_LIBS"
    elif test -d /usr/X11R5/include ; then
      X_CFLAGS="-I/usr/X11R5/include $X_CFLAGS"
      X_LIBS="-L/usr/X11R5/lib $X_LIBS"
    fi

  ;;
  *-solaris*)
    # Same to you, pinheads.  (Is this really the standard location now?
    # What happened to the joke that this kind of thing went in /opt?)
    # cthomp says "answer: CDE (Common Disorganized Environment)"
    if test -f /usr/dt/include/Xm/Xm.h ; then
      X_CFLAGS="$X_CFLAGS -I/usr/dt/include"
      X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib"

      # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
      AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
    fi
  ;;
esac



# Check for Xmu (some fucked up vendors don't ship it...)
#
have_xmu=no
AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
if test $have_xmu = no ; then
  XMU_SRCS='$(UTILS_SRC)/xmu.c'
  XMU_OBJS='$(UTILS_BIN)/xmu.o'
else
  XMU_SRCS=''
  XMU_OBJS=''
  SAVER_LIBS="-lXmu $SAVER_LIBS"
  HACK_LIBS="-lXmu $HACK_LIBS"
  AC_DEFINE(HAVE_XMU)
fi


# See comp.windows.x FAQ question 124 about _get_wmShellWidgetClass on 4.1.x.
# The right fix is to get OpenWindows 3.0 patches 100512-02 and 100573-03.
#
if test $have_xmu = yes ; then
  case "$host" in
    *-sunos4*)
    AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug],
		   ac_cv_sunos_xmu_bug,
		   [ac_save_LDFLAGS="$LDFLAGS"
		    if test \! -z "$x_libraries" ; then
		      LDFLAGS="$LDFLAGS -L$x_libraries"
		    fi
		    # Note: this trick never works!  (Generally.)
		    # We're only getting away with using AC_TRY_LINK
		    # with X libraries because we know it's SunOS.
		    LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
		    AC_TRY_LINK(,,
				[ac_cv_sunos_xmu_bug=no],
				[ac_cv_sunos_xmu_bug=yes])
		    LDFLAGS="$ac_save_LDFLAGS"])
    if test $ac_cv_sunos_xmu_bug = yes ; then
      AC_CACHE_CHECK([whether the compiler understands -static],
		     ac_cv_ld_static,
		     [ac_save_LDFLAGS="$LDFLAGS"
		      LDFLAGS="$LDFLAGS -static"
		      AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no])
		    LDFLAGS="$ac_save_LDFLAGS"])
      if test $ac_cv_ld_static = yes ; then
        LDFLAGS="$LDFLAGS -static"
      else
	LDFLAGS="$LDFLAGS -Bstatic"
      fi
    fi
    ;;
  esac
fi


# Check for the SGI SCREEN_SAVER server extension header.
#
have_sgi=no
with_sgi_req=unspecified
AC_ARG_WITH(sgi-ext,[
Server options:

  --with-sgi-ext          Include support for the SGI SCREEN_SAVER
                          server extension, if possible (this is the default).
  --without-sgi-ext       Do not compile in support for this extension.],
  [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes])
if test $with_sgi = yes; then
  AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
		    [have_sgi=yes
		     AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])

elif test $with_sgi != no; then
  echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
  exit 1
fi

# Check for the MIT-SCREEN-SAVER server extension header,
# unless the SGI extension has already been found.
#
have_mit=no
with_mit_req=unspecified
AC_ARG_WITH(mit-ext,
[  --with-mit-ext          Include support for the MIT-SCREEN-SAVER
                          server extension, if possible (this is the default).
  --without-mit-ext       Do not compile in support for this extension.],
  [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes])
if test $have_sgi != yes; then
  if test $with_mit = yes; then
    AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])

    # Now check to see if it's really in the library; XF86Free-3.3 ships
    # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
    #
    if test $have_mit = yes; then
      AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [], [have_mit=no], -lm)

      if test $have_mit = no; then
	# Fuck!  Looks like XF86Free-3.3 actually puts it in XExExt instead
	# of in Xext.  Thank you master, may I have another.
        AC_CHECK_X_LIB(XExExt, XScreenSaverRegister,
		       [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"],
		       [], -lX11 -lXext -lm)
      fi

      if test $have_mit = no; then
	# Double fuck!  Looks like some versions of XFree86 (whichever version
	# it is that comes with RedHat Linux 2.0 -- I can't find a version
	# number) put this garbage in Xss instead of Xext.  Thank you master,
	#  may I have another.
        AC_CHECK_X_LIB(Xss, XScreenSaverRegister,
		       [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"],
		       [], -lX11 -lXext -lm)
      fi

    if test $have_mit = yes; then
      AC_DEFINE(HAVE_MIT_SAVER_EXTENSION)
    fi

    fi

  elif test $with_mit != no; then
    echo "error: must be yes or no: --with-mit-ext=$with_mit"
    exit 1
  fi
fi


# Check for the XIDLE server extension header.
#
have_xidle=no
with_xidle_req=unspecified
AC_ARG_WITH(xidle-ext,
[  --with-xidle-ext        Include support for the XIDLE server extension,
                          if possible (this is the default).
  --without-xidle-ext     Do not compile in support for this extension.],
  [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes])
if test $with_xidle = yes; then
  AC_CHECK_X_HEADER(X11/extensions/xidle.h,
		    [have_xidle=yes
		     AC_DEFINE(HAVE_XIDLE_EXTENSION)])
elif test $with_xidle != no; then
  echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
  exit 1
fi


# Check for the XSHM server extension header.
#
have_xshm=no
with_xshm_req=unspecified
AC_ARG_WITH(xshm-ext,
[  --with-xshm-ext         Include support for the XSHM (Shared Memory) server
                          extension, if possible (this is the default).
  --without-xshm-ext      Do not compile in support for this extension.],
  [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes])
if test $with_xshm = yes; then

  # first check for Xshm.h.
  AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])

  # if that succeeded, then check for sys/ipc.h.
  if test $have_xshm = yes; then
    have_xshm=no
    AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes])
  fi

  # if that succeeded, then check for sys/shm.h.
  if test $have_xshm = yes; then
    have_xshm=no
    AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes])
  fi

  # if that succeeded, then we've really got it.
  if test $have_xshm = yes; then
    AC_DEFINE(HAVE_XSHM_EXTENSION)
  fi

elif test $with_xshm != no; then
  echo "error: must be yes or no: --with-xshm-ext=$with_xshm"
  exit 1
fi


# Check for the SGI-VIDEO-CONTROL server extension header.
#
have_sgivc=no
with_sgivc_req=unspecified
AC_ARG_WITH(sgivc-ext,
[  --with-sgivc-ext        Include support for the SGI-VIDEO-CONTROL server
                          extension, if possible (this is the default).
  --without-sgivc-ext     Do not compile in support for this extension.],
  [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes])
if test $with_sgivc = yes; then

  # first check for XSGIvc.h
  AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])

  # if that succeeded, then check for the -lXsgivc
  if test $have_sgivc = yes; then
    have_sgivc=no
    AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap,
		  [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [],
		  -lXext -lX11)
  fi

  # if that succeeded, then we've really got it.
  if test $have_sgivc = yes; then
    AC_DEFINE(HAVE_SGI_VC_EXTENSION)
  fi

elif test $with_sgivc != no; then
  echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc"
  exit 1
fi








# Check for Motif and Athena --with and --without arguments.
#
have_motif=no
have_athena=no
with_motif_req=unspecified
with_athena_req=unspecified

AC_ARG_WITH(motif,[
Toolkit options:

  --with-motif            Use the Motif toolkit for the user interface,
                          if possible (this is the default).
  --without-motif         Do not use Motif.],
  [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no])

AC_ARG_WITH(athena,
[  --with-athena           Use the Athena toolkit for the user interface, if
                          possible (this is the default if Motif isn't used.)
  --without-athena        Do not use Athena.],
  [with_athena="$withval"; with_athena_req="$withval"],[with_athena=no])

if test $with_motif != yes -a $with_motif != no ; then
  echo "error: must be yes or no: --with-motif=$with_motif"
  exit 1
fi

if test $with_athena != yes -a $with_athena != no ; then
  echo "error: must be yes or no: --with-athena=$with_athena"
  exit 1
fi


# Saying --without-motif is the same as saying --with-athena.
if test $with_motif_req = no ; then
  with_athena_req=yes
  with_athena=yes
fi

# Saying --without-athena is the same as saying --with-motif.
if test $with_athena_req = no ; then
  with_motif_req=yes
  with_motif=yes
fi

# Check for Motif and Athena headers.

check_motif() {
  AC_CHECK_X_HEADER(Xm/Xm.h,
		    [have_motif=yes
		     AC_DEFINE(HAVE_MOTIF)
		     SAVER_LIBS="-lXm $SAVER_LIBS"])
}

check_athena() {
  AC_CHECK_X_HEADER(X11/Xaw/Dialog.h,
	           [have_athena=yes
		    AC_DEFINE(HAVE_ATHENA)
		    SAVER_LIBS="-lXaw $SAVER_LIBS"])
}


# If they asked for both motif and athena, check motif then athena.
# If they asked for only motif, check motif then athena.
# If they asked for only athena, check athena then motif.
# If they asked for neither, check motif then athena.

proselytize_motif=yes
if test $with_motif = yes; then
  # asked for both, or for motif only
  check_motif
  if test $have_motif = yes; then
    with_athena=no
    with_athena_req=no
  else
    check_athena
  fi

elif test $with_athena = yes; then
  # asked for athena only
  check_athena
  if test $have_athena = yes; then
    with_motif=no
    proselytize_motif=no
  else
    check_motif
  fi

else
  # asked for neither
  check_motif
  if test $have_motif = yes; then
    with_athena=no
  else
    check_athena
  fi

fi

if test $have_motif = yes; then
  proselytize_motif=no
fi

# If we have Athena, check whether it's a version that includes
# XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
if test $have_athena = yes ; then
  AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h],
		 ac_cv_have_XawViewportSetCoordinates,
		 [ac_cv_have_XawViewportSetCoordinates=no
		  AC_EGREP_X_HEADER(XawViewportSetCoordinates,
				    X11/Xaw/Viewport.h,
				    ac_cv_have_XawViewportSetCoordinates=yes)])
  if test $ac_cv_have_XawViewportSetCoordinates = yes ; then
    AC_DEFINE(HAVE_XawViewportSetCoordinates)
  fi
fi


# If we have Motif, check whether it's really LessTif.
#
have_lesstif=no
if test $have_motif = yes ; then
  AC_CACHE_CHECK([whether Motif is really LessTif],
		 ac_cv_have_lesstif,
		 [AC_TRY_X_COMPILE([#include <Xm/Xm.h>],
				   [long vers = LesstifVersion;],
				   [ac_cv_have_lesstif=yes],
				   [ac_cv_have_lesstif=no])])
  have_lesstif=$ac_cv_have_lesstif
fi

# don't cache this
unset ac_cv_good_lesstif

good_lesstif=no
if test $have_lesstif = yes ; then
  # It must be at least "GNU Lesstif 0.82".
  # #### If you change this, also sync the warning message lower down.
  AC_CACHE_CHECK([whether LessTif is of a recent enough vintage],
		 ac_cv_good_lesstif,
		 [AC_TRY_X_RUN([#include <Xm/Xm.h>
				int main() { exit(LesstifVersion < 82); }],
			       [ac_cv_good_lesstif=yes],
			       [ac_cv_good_lesstif=no],
			       # cross compiling?  Make an ass out of umption.
			       [ac_cv_good_lesstif=yes])])
  good_lesstif=$ac_cv_good_lesstif
fi


# check for XPM header.
#
have_xpm=no
with_xpm_req=unspecified
AC_ARG_WITH(xpm,[
Demo options:

  --with-xpm              Include support for XPM files in some demos,
                          if possible (this is the default).
  --without-xpm           Do not compile in support for XPM files.],
  [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
if test $with_xpm = yes; then
  AC_CHECK_X_HEADER(X11/xpm.h,
	           [have_xpm=yes
		    AC_DEFINE(HAVE_XPM)
		    XPM_LIBS="-lXpm"])
elif test $with_xpm != no; then
  echo "error: must be yes or no: --with-xpm=$with_xpm"
  exit 1
fi


# check for the GL header
#
have_gl=no
with_gl_req=unspecified
AC_ARG_WITH(gl,
[  --with-gl               Build those demos which depend on OpenGL,
                          if possible (this is the default).
  --without-gl            Do not build the OpenGL demos.],
  [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes])

if test $with_gl = yes; then
  AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
  if test $have_gl = yes ; then
    AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
  fi

  # If we have the headers, try and figure out which vendor it's from.
  #
  if test $have_gl = yes ; then

    AC_DEFINE(HAVE_GL)
    have_mesa_gl=no
    AC_EGREP_X_HEADER(Mesa, GL/glx.h, [have_mesa_gl=yes])
    if test $have_mesa_gl = no ; then
      GL_LIBS="-lGL -lGLU"
    else
      AC_DEFINE(HAVE_MESA_GL)
      GL_LIBS="-lMesaGL -lMesaGLU"
    fi
  fi

elif test $with_gl != no; then
  echo "error: must be yes or no: --with-gl=$with_gl"
  exit 1
fi


# check for SGI XReadDisplay server extension header.
#
have_readdisplay=no
with_readdisplay_req=unspecified
AC_ARG_WITH(readdisplay,
[  --with-readdisplay      Include support for the XReadDisplay server
                          extension if possible (this is the default).
  --without-readdisplay   Do not compile in support for this extension.],
  [with_readdisplay="$withval"; with_readdisplay_req="$withval"],
  [with_readdisplay=yes])
if test $with_readdisplay = yes; then
  AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
	            AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
elif test $with_readdisplay != no; then
  echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
  exit 1
fi


# check for SGI's Iris Video Library header.
#
have_sgivideo=no
with_sgivideo_req=unspecified
AC_ARG_WITH(sgivideo,
[  --with-sgivideo         Include support for SGI's Iris Video Library
                          if possible (this is the default).
  --without-sgivideo       Do not compile in support for this library.],
  [with_sgivideo="$withval"; with_sgivideo_req="$withval"],
  [with_sgivideo=yes])
if test $with_sgivideo = yes; then
  AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes)
  if test $have_sgivideo = yes; then
    have_sgivideo=no
    AC_CHECK_LIB(vl, vlOpenVideo, have_sgivideo=yes)
    if test $have_sgivideo = yes; then
      SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o"
      SGI_VIDEO_LIBS="-lvl"
      AC_DEFINE(HAVE_SGI_VIDEO)
    fi
  fi
elif test $with_sgivideo != no; then
  echo "error: must be yes or no: --with-sgivideo=$with_sgivideo"
  exit 1
fi



# Try to find a program to generate random text.
#
# Zippy is funnier than the idiocy generally spat out by `fortune',
# so try to find that, by invoking Emacs and asking it where its
# libexec directory is ("yow" lives in there.)
#
# If that doesn't work, see if fortune, zippy, or yow are on $PATH,
# and if so, use them.
#
# If that doesn't work, look in /usr/games, and if it's there, use
# the full pathname.
#
with_zippy_req=""
AC_ARG_WITH(zippy,
[  --with-zippy=PROGRAM    Some demos are able to run an external program and
                          display its text; this names the program to use by
                          default (though it can be overridden with X
                          resources.)  If you don't specify this, the default
                          is to use \"yow\" from the Emacs distribution (if you
                          have it) or else to use \"fortune\".],
  [ with_zippy_req="$withval"; with_zippy="$withval" ],
  [ with_zippy_req="$withval"; with_zippy="$withval" ])

if test "$with_zippy" = no || test "$with_zippy" = yes ; then
  with_zippy=""
  with_zippy_req=""
fi

if test -n "$with_zippy_req" ; then
  ac_cv_zippy_program=""
  case "$with_zippy_req" in
    /*)
      AC_MSG_CHECKING([for $with_zippy_req])
      if test -x "$with_zippy_req" ; then
        AC_MSG_RESULT(yes)
      else
        AC_MSG_RESULT(no)
        with_zippy=""
      fi
    ;;
    *)
      # don't cache
      unset ac_cv_path_zip2
      AC_PATH_PROG(zip2, $with_zippy_req, [])
      if test "$zip2" = ""; then
        with_zippy=""
      fi
    ;;
  esac
  ac_cv_zippy_program="$with_zippy"

elif test -n "$ac_cv_zippy_program"; then
  AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program])
fi

if test ! -n "$ac_cv_zippy_program"; then

  AC_CHECK_PROGS(emacs_exe, emacs)
  AC_CHECK_PROGS(xemacs_exe, xemacs)

  ac_cv_zippy_program=""
  eargs='-batch -q -nw --eval'

  if test -n "$emacs_exe" ; then
    AC_MSG_CHECKING([for emacs yow])
    #
    # get emacs to tell us where the libexec directory is.
    #
    dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \
	 2>/dev/null | tail -1`
    dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
    #
    # try running libexec/yow and see if it exits without error.
    #
    if test x"$dir" != x -a -x $dir/yow ; then
      if $dir/yow >&- 2>&- ; then
	ac_cv_zippy_program="$dir/yow"
	AC_MSG_RESULT($ac_cv_zippy_program)
      else
	AC_MSG_RESULT(no)
      fi
    fi
  fi

  if test -z "$ac_cv_zippy_program" ; then
    AC_MSG_CHECKING([for xemacs yow])
    if test -n "$xemacs_exe" ; then
      #
      # get xemacs to tell us where the libexec directory is.
      #
      dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \
	   2>/dev/null | tail -1`
      dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'`
      #
      # try running libexec/yow and see if it exits without error.
      #
      if test x"$dir" != x -a -x $dir/yow ; then
        if $dir/yow >&- 2>&- ; then
	  ac_cv_zippy_program="$dir/yow"
	  AC_MSG_RESULT($ac_cv_zippy_program)
	else
	  #
	  # in some xemacs installations, the pathname of the yow.lines file
	  # isn't hardcoded into the yow executable, and must be passed on
	  # the command line.  See if it's in libexec/../etc/.

	  # M4 sucks!!
	  changequote(X,Y)
	  dir_up=`echo "$dir" | sed 's@/[^/]*$@@'`
	  changequote([,])

          yow="yow -f $dir_up/etc/yow.lines"
	  if $dir/$yow >&- 2>&- ; then
	    ac_cv_zippy_program="$dir/$yow"
	    AC_MSG_RESULT($ac_cv_zippy_program)
	  else
	    AC_MSG_RESULT(no)
	  fi
        fi
      fi
    fi
  fi

  # if that didn't work, try for some other programs...
  if test -z "$ac_cv_zippy_program" ; then
    fortune=''
    AC_CHECK_PROGS(fortune, [fortune zippy yow])
    # if that didn't work, try for those programs in /usr/games...
    if test -z "$fortune" ; then
      AC_PATH_PROGS(fortune, [fortune zippy yow], fortune,
		    /usr/games:/usr/local/games)
    fi
  fi
fi

if test -z "$ac_cv_zippy_program" ; then
  ac_cv_zippy_program=fortune
fi

AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program")




# Allow locking to be disabled at compile-time.
#
have_locking=yes
have_kerberos=no
with_kerberos_req=unspecified
have_shadow=no
with_shadow_req=unspecified
need_setuid=no

AC_ARG_ENABLE(locking,[
Locking options:

  --enable-locking        Compile in support for locking the display
                          (this is the default.)
  --disable-locking       Do not allow locking at all.],
  [enable_locking="$enableval"],[enable_locking=yes])
if test $enable_locking = yes; then

  # Check for Kerberos.
  #
  AC_ARG_WITH(kerberos, [
  --with-kerberos         Include support for Kerberos authentication,
                          if possible (this is the default.)
  --without-kerberos      Do not compile in support for Kerberos.],
  [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes])
  if test $with_kerberos = yes; then
    AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
		   [AC_TRY_X_COMPILE([#include <krb.h>],,
				     [ac_cv_kerberos=yes],
				     [ac_cv_kerberos=no])])
    if test $ac_cv_kerberos = yes ; then
      have_kerberos=yes
      AC_DEFINE(HAVE_KERBEROS)
      PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lnsl -lsocket"
    fi
  elif test $with_kerberos != no; then
    echo "error: must be yes or no: --with-kerberos=$with_kerberos"
    exit 1
  fi

  # Next, check for the nine billion variants of shadow passwords...

  passwd_cruft_done=no
  AC_ARG_WITH(shadow,
[  --with-shadow           Include support for shadow password authentication,
                          if possible (this is the default, if no Kerberos.)
  --without-shadow        Do not compile in support for shadow passwords.
],
  [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes])
  if test $with_shadow = no; then
    passwd_cruft_done=yes
  elif test $with_shadow != yes; then
    echo "error: must be yes or no: --with-shadow=$with_shadow"
    exit 1
  fi


  # Sun's "adjunct" passwords.
  #
  if test $passwd_cruft_done = no ; then
    AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct,
		   [AC_TRY_X_COMPILE([#include <stdlib.h>
				      #include <unistd.h>
				      #include <sys/types.h>
				      #include <sys/label.h>
				      #include <sys/audit.h>
				      #include <pwdadj.h>],
			[struct passwd_adjunct *p = getpwanam("nobody");
			 const char *pw = p->pwa_passwd;],
			[ac_cv_sun_adjunct=yes],
			[ac_cv_sun_adjunct=no])])
    if test $ac_cv_sun_adjunct = yes; then
      have_shadow=yes
      need_setuid=yes
      passwd_cruft_done=yes
      AC_DEFINE(HAVE_ADJUNCT_PASSWD)
    fi
  fi

  # DEC and SCO so-called "enhanced" security.
  #
  if test $passwd_cruft_done = no ; then
    AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd,
		   [AC_TRY_X_COMPILE([#include <stdlib.h>
				      #include <unistd.h>
				      #include <sys/types.h>
				      #include <pwd.h>
				      #include <sys/security.h>
				      #include <prot.h>],
			[struct pr_passwd *p;
			 const char *pw;
			 set_auth_parameters(0, 0);
			 check_auth_parameters();
			 p = getprpwnam("nobody");
			 pw = p->ufld.fd_encrypt;],
			[ac_cv_enhanced_passwd=yes],
			[ac_cv_enhanced_passwd=no])])
    if test $ac_cv_enhanced_passwd = yes; then
      have_shadow=yes
      need_setuid=yes
      passwd_cruft_done=yes
      AC_DEFINE(HAVE_ENHANCED_PASSWD)

      # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx)
      # (I'm told it needs -lcurses too, but I don't understand why.)
      AC_CHECK_LIB(prot, getprpwnam,
		   [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"],
		   [# On DEC, getprpwnam() is in -lsecurity
		    AC_CHECK_LIB(security, getprpwnam,
				 [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])],
		   [-lx])
    fi
  fi

  # HP's entry in the "Not Invented Here" Sweepstakes.
  #
  if test $passwd_cruft_done = no ; then
    AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd,
		   [AC_TRY_X_COMPILE([#include <stdlib.h>
				      #include <unistd.h>
				      #include <sys/types.h>
				      #include <pwd.h>
				      #include <hpsecurity.h>
				      #include <prot.h>],
			[struct s_passwd *p = getspwnam("nobody");
			 const char *pw = p->pw_passwd;],
			[ac_cv_hpux_passwd=yes],
			[ac_cv_hpux_passwd=no])])
    if test $ac_cv_hpux_passwd = yes; then
      have_shadow=yes
      need_setuid=yes
      passwd_cruft_done=yes
      AC_DEFINE(HAVE_HPUX_PASSWD)

      # on HPUX, bigcrypt is in -lsec
      AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"])
    fi
  fi

  # Traditional (ha!) shadow passwords.
  #
  if test $passwd_cruft_done = no ; then
    AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow,
		   [AC_TRY_X_COMPILE([#include <stdlib.h>
				      #include <unistd.h>
				      #include <sys/types.h>
				      #include <pwd.h>
				      #include <shadow.h>],
			[struct spwd *p = getspnam("nobody");
			 const char *pw = p->sp_pwdp;],
			[ac_cv_shadow=yes],
			[ac_cv_shadow=no])])
    if test $ac_cv_shadow = yes; then
      have_shadow=yes
      need_setuid=yes
      passwd_cruft_done=yes
      AC_DEFINE(HAVE_SHADOW_PASSWD)

      # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
      have_getspnam=no
      AC_CHECK_LIB(c, getspnam, [have_getspnam=yes])
      if test $have_getspnam = no ; then
        AC_CHECK_LIB(gen, getspnam,
		     [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"])
      fi
    fi
  fi

  # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
  have_crypt=no
  AC_CHECK_LIB(c, crypt, [have_crypt=yes])
  if test $have_crypt = no ; then
    AC_CHECK_LIB(crypt, crypt,
		 [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
  fi


  # Most of the above shadow mechanisms will have set need_setuid to yes,
  # if they were found.  But, on some systems, we need setuid even when
  # using plain old vanilla passwords.
  #
  if test $need_setuid = no ; then
    case "$host" in
      *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* )
        need_setuid=yes
      ;;
    esac
  fi

elif test $enable_locking = no; then
  AC_DEFINE(NO_LOCKING)
else
  echo "error: must be yes or no: --enable-locking=$enable_locking"
  exit 1
fi



if test \! -z "$includedir" ; then
  INCLUDES="-I$includedir"
fi

if test \! -z "$libdir" ; then
  LDFLAGS="$LDFLAGS -L$libdir"
fi


##### should have options to override the DEPEND crap, I guess...
DEPEND=makedepend
DEPEND_FLAGS=
DEPEND_DEFINES=



# Done testing things -- now substitute in some stuff for the Makefiles.
#
if test $have_motif = yes; then
  AC_DEFINE(HAVE_MOTIF)
  DIALOG_SRCS='$(MOTIF_SRCS)'
  DIALOG_OBJS='$(MOTIF_OBJS)'
elif test $have_athena = yes; then
  AC_DEFINE(HAVE_ATHENA)
  DIALOG_SRCS='$(ATHENA_SRCS)'
  DIALOG_OBJS='$(ATHENA_OBJS)'
else
  DIALOG_SRCS=''
  DIALOG_OBJS=''
fi

if test $have_kerberos = yes; then
  PASSWD_SRCS='$(KERBEROS_SRCS)'
  PASSWD_OBJS='$(KERBEROS_OBJS)'
else
  PASSWD_SRCS='$(PWENT_SRCS)'
  PASSWD_OBJS='$(PWENT_OBJS)'
fi

if test $enable_locking = yes; then
  LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
  LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
else
  LOCK_SRCS=''
  LOCK_OBJS=''
fi

if test $need_setuid = yes; then
  NEED_SETUID=yes
  INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)'
else
  NEED_SETUID=no
  INSTALL_SETUID='$(INSTALL_PROGRAM)'
fi

tab='	'
if test $have_gl = yes; then
  GL_EXES='$(GL_EXES)'
  GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}'  \'
  GL_KLUDGE_2=${tab}
else
  GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}'\n'
  GL_KLUDGE_2='!'${tab}
fi

AC_SUBST(INCLUDES)

AC_SUBST(SAVER_LIBS)
AC_SUBST(HACK_LIBS)
AC_SUBST(XPM_LIBS)
AC_SUBST(GL_LIBS)
AC_SUBST(PASSWD_LIBS)
AC_SUBST(INSTALL_SETUID)
AC_SUBST(NEED_SETUID)
AC_SUBST(SGI_VIDEO_OBJS)
AC_SUBST(SGI_VIDEO_LIBS)

AC_SUBST(DIALOG_SRCS)
AC_SUBST(DIALOG_OBJS)
AC_SUBST(PASSWD_SRCS)
AC_SUBST(PASSWD_OBJS)
AC_SUBST(XMU_SRCS)
AC_SUBST(XMU_OBJS)
AC_SUBST(LOCK_SRCS)
AC_SUBST(LOCK_OBJS)
AC_SUBST(GL_EXES)
AC_SUBST(GL_KLUDGE_1)
AC_SUBST(GL_KLUDGE_2)
AC_SUBST(HACKDIR)
AC_SUBST(APPDEFAULTS)

AC_SUBST(DEPEND)
AC_SUBST(DEPEND_FLAGS)
AC_SUBST(DEPEND_DEFINES)

# Print some warnings before emitting the Makefiles.
#
warning=no
warnsep='    #################################################################'
warnpre() {
  if test $warning = no ; then
    echo '' ; echo "$warnsep" ; echo ''
    warning=yes
  fi
}

warn() {
  warnpre
  if test $warning = long ; then echo '' ; fi
  warning=yes
  echo "    Warning: $@"
}

warnL() {
  was=$warning
  warnpre
  warning=yes
  if test $was != no ; then echo '' ; fi
  echo "    Warning: $@"
}

warn2() {
  echo "             $@"
  warning=long
}

if test $with_sgi_req = yes -a $have_sgi = no ; then
  warn 'The SGI saver extension was requested, but was not found.'
fi

if test $with_mit_req = yes -a $have_mit = no ; then
  warn 'The MIT saver extension was requested, but was not found.'
fi

if test $with_xidle_req = yes -a $have_xidle = no ; then
  warn 'The XIdle extension was requested, but was not found.'
fi

if test $with_xshm_req = yes -a $have_xshm = no ; then
  warn 'The XSHM extension was requested, but was not found.'
fi

if test $with_sgivc_req = yes -a $have_sgivc = no ; then
  warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.'
fi

if test $have_motif = no -a $have_athena = no ; then
  warnL "Neither Motif nor Athena widgets seem to be available;"
  warn2 "one or the other is required."
  proselytize_motif=no

elif test $with_motif_req = yes -a $have_motif = no ; then
  warnL "Use of Motif was requested, but it wasn't found;"
  warn2 "Athena will be used instead."

elif test $with_athena_req = yes -a $have_athena = no ; then
  warnL "Use of Athena was requested, but it wasn't found;"
  warn2 "Motif will be used instead."
fi

if test $have_motif = yes -a $have_lesstif = yes ; then
  if test $good_lesstif != yes ; then
    warnL "Motif is being used, but it appears to actually be"
    warn2 "LessTif, and the version number is less than 0.82!"
    warn2 "Such old versions of LessTif are too buggy to use"
    warn2 "with XScreenSaver; it is strongly recommended that"
    warn2 "you upgrade!  See <http://www.lesstif.org/>."
  fi
fi

if test $proselytize_motif = yes ; then
    warnL "Athena widgets are being used instead of Motif."
    warn2 "XScreenSaver looks much better with Motif, and has"
    warn2 "a few extra features as well.  Wouldn't you rather"
    warn2 "be using Motif?  It is shipped by every commercial"
    warn2 "Unix vendor; and there is a free implementation"
    warn2 "available as well: see <http://www.lesstif.org/>."
fi

if test $with_xpm_req = yes -a $have_xpm = no ; then
  warn 'Use of XPM was requested, but it was not found.'
fi

if test $with_gl_req = yes -a $have_gl = no ; then
  warn 'Use of GL was requested, but it was not found.'
fi

if test $with_readdisplay_req = yes -a $have_readdisplay = no ; then
  warn 'Use of XReadDisplay was requested, but it was not found.'
fi

if test $with_sgivideo_req = yes -a $have_sgivideo = no ; then
  warn 'Use of the Iris Video Library was requested, but it was not found.'
fi

if test $with_kerberos_req = yes -a $have_kerberos = no ; then
  warn 'Use of Kerberos was requested, but it was not found.'
fi

if test $with_shadow_req = yes -a $have_shadow = no ; then
  warn 'Use of shadow passwords was requested, but they were not found.'
fi

if test -n "$with_zippy_req"; then
  if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then
    warnL "$with_zippy_req was requested as the Zippy program,"
    warn2 "but was not found.  The default will be used instead."
  fi
fi

if test $warning != no; then
  echo '' ; echo "$warnsep" ; echo ''
fi


AC_OUTPUT(Makefile
	  utils/Makefile
	  driver/Makefile
	  xlockmore/xlock/Makefile
	  xlockmore/modes/Makefile
	  hacks/Makefile
	  hacks/glx/Makefile
	  driver/XScreenSaver.ad)
